Берем основную модель, возможно, вообще без мяса, только с гусеницами, но с кучей точек крепления. Также берем кучу моделей-аттачметов, представляющих собой эти самые пушки, корпуса и все прочее. При выборе характеристик модели через диалог или интерфейс соответственно создаем на основной модели эффекты-аттачменты, будет собрана техника. Такие штуки, как двигатель и прочие невидные извне элементы будут скорее входить в математическую модель юнита, но это также можно запилить. Название танка - сразу не скажу, есть ли триггер на смену, но на таблице рекордов можно отобразить что угодно.
2.Тоже можно.
Создаем погодный в определенной местности и делаем два триггера для контроля входа-выхода юнитов из нее. На искомых юнитов применяем нужные способности - и все готово.
Здесь чуть сложнее: нужно постоянно проверять тип местности под юнитом, но тоже можно. Проверка на ограждения тоже может бить сделана.
4.Это уже интереснее. Видел раньше подобное в играх. При каждой атаке юнита случайным образом наносим или не наносим доп. урон, эффект горения, кидаем спелл на цель в зависимости от теоретического места попадания атаки.
5.И это можно. Но нужно писать нестандартную систему Альянса. Но через триггеры и JASS все можно...
Продажа техники - лучше через способность, что бы кидать ее на понравившегося юнита, не стоит покупать кота в мешке. Стоимость должна зависеть от технического уровня юнита, его текущего состояния (мертвый танк попадет вам бесплатно, сами чините!), если он был модернизован дополнительно, то это тоже входит в стоимость. Разрешение на продажу делаем аналогично.
Это легко через Custom Value и переменние.
Как ты понял, все что ты предложил создать можно, но на это нужно потрать хороший кусок времени. Остается пожелать тебе удачи над созданием проекта - мне идея уже нравится.
Нашёл систему, где звук передаётся в таймер, который истекает через 0 секунд. В результате один и тот же звук может проигрываться несколько раз без всяких проблем. В инетике пишут мол это такой баг движка.
научись правильно выражать свои мысли
наработки тут не кидают (это раздел вопросы а наработки)
если я правильно понял то тебе надо сделать следующее:
составить список играющих игроков
каждые n секунд брать из этого списка 2 случайных игрока и тпшить их героев на арену
после смерти 1 из этих героев тпшить обоих на базу (т.к. проигравший мёртв то тпшнится только победитель)
теперь пройдёмся подробно по пунктам
массив игроков и переменная count типа целочисленная равная 0 изначально
перебираем всех игроков от 0 до 11
если игрок играет то заносим его в массив под индексом count
увеличиваем значение count на 1
триггер с событием/таймер каждые n секунд
в действиях берём случайное число от 0 до count
это индекс первого игрока на дуэли
потом снова случайное число от 0 до count
если оно совпадает с предыдущим числом то снова случайное число от 0 до count
и так до тех пор пока новое число не будет отличаться от первого (делается циклом)
потом используем полученные 2 числа как индексы к массиву игроков и тпшим их героев на арену
как только герой умирает проверяем является ли владелец умершего героя одним из выбранных игроков
потом тпшим обоих героев на базу и выдаём чтото наподобие "игрок выживший_игрок победил"
подробнее в статьях
игрок А и игрок Б являются противниками. На арене дерутся. Есть два игрока-бота (пустующие слоты игроков), это игроки В и Д. В и Д между собой являются нейтральными союзниками.
можно настроить союзы. игрок А может быть не только союзником В, но и управлять юнитами игрока В. Также как и Б может делать с игроком Д.
Те юниты, которые находятся за пределами области, передать другому игроку (это временно). Но игроки могут управлять ими
Есть арена, где все враги. А есть торговая площадка, где можно продавать всякие предметы. На ней нельзя драться. Казалось норм. Зашел, настроил союзы и норм. Это для одного героя легко сделать. А когда у тебя большие войска, то ты не можешь сделать так. Придется разделить контроль за войсками: героя и носильщиков можно отдать нейтралу. А остальных на арене оставить.
самый бредовый - настроить цели атаки. У тех, у кого стоит механика, не смогут тогда атаковать органику. триггерами можно выдавать классификацию
это было в общих чертах. реализовать это можно по-разному. настраивайте союзы через триггеры (есть союзы и аспекты союза - см. там в разделе игрок)
Если во всех картах одинаковый id, значит покопайся в хеше.
Это как, можно в личку?
Проблему решил, переделав стандартную способность, а не создавая нестандартную. Это почти что панацея от подобных случаев, когда id (ещё называют raw-code) способности меняется.
Поскольку его не пугает наличие большого влияния промахов на геймплей - скорее всего он делает рпг. Имхо в рпг всегда клево смотрятся тексттаги полученного урона, для создания которых необходимы триггеры на отлов получения урона. А отлавливаемый урон - можно и прохилить.
Для прохила(и вообще всех манипуляций с задержкой в 0.00 сек) лично я юзаю такие костыли:
Либа здесь только для доп табуляции. Я за чистый жасс + дефайны.
library ZeroTimeEvent
globals
constant integer ZTEArraySize = 64//Even 32 is alot, 64 is too much! Exactly what I need!
timer Zero//Used for 0. sec uses
integer ZTECurrent = 0
unit array ZTEUnits[ZTEArraySize]
integer array ZTEIntegers[ZTEArraySize]
real array ZTEReals[ZTEArraySize]
trigger array ZTETriggers[ZTEArraySize]
endglobals
function ZeroTimeEvent takes nothing returns nothing
loop
set ZTECurrent = ZTECurrent - 1
call TriggerExecute( ZTETriggers[ZTECurrent] )
exitwhen ZTECurrent < 1
endloop
endfunction
#define ZTEAddUnit(u) = {
set ZTEUnits[ZTECurrent] = u
}
#define ZTEAddInteger(i) = {
set ZTEIntegers[ZTECurrent] = i
}
#define ZTEAddReal(r) = {
set ZTEReals[ZTECurrent] = r
}
#define ConfirmZTE(trig) = {
set ZTETriggers[ZTECurrent] = trig
set ZTECurrent = ZTECurrent + 1
call TimerStart( Zero, ZeroTime, false, function ZeroTimeEvent )
}
endlibrary
ilsva, я решил проверить сам. Поставил на пустую карту алтарь, героя и других юнитов, чтобы убить его. Триггер сделал как у тебя, только без условия и издавать звук я делал от алтаря. - Всё работало. Потом поставил условие на тип героя - так же всё работало. Поэтому возможно проблема в том, что ты делаешь издавать звук от триггерного юнита, а он при этом ещё как бы не создан и его позиция не определена. Попробуй сделать издавать звук от алтаря или же перед тем как издавать звук от юнита - попробуй сделать ждать, например 0.5 сек.
"Набор звуков" нельзя сделать через триггеры, но можно попробовать через импорт файлов заменить стандартные файлы в уже существующих наборах.
Для этого импортируемому файлу надо прописать путь заменяемого.
Maniac_91, Дак ведь оживление можно заюзать при условие, что есть рядом чей-то скелет(Труп), иначе способность нельзя юзнуть так как ни кого не удастся оживить.
А у него при любом раскладе она сработает. А при использование отставить приказа,способность выходит из цикла. Это может быть говорить о том, что у Способность произошло исключение(Трупов то нет) ?
Нашёл решение для тебя.
Пол-ночи провозился, но нашёл. почему-то это стало делом чести - открыть сию карту в редакторе
В общем, берёшь архив из аттача и тупо суёшь папку UI в корень варкрафта. После этого карта будет открываться любым вариантом редактора - как JNGP (любым), так и (даже!) стандартным.
Важно: локальные файлы должны быть разрешены.
Только там такой срач и дичь, что лучше реально своими руками с нуля писать...
Действие-задание выберай на вкус. Про то, чтобы было "Подошёл к чуваку и появилось ещё одно задание", нужно поставить область возле этого чувака, далее сделать триггер с событием-юнит вошёл в зону, дать владельцу входящего юнита задание, такое-то далее, если оно одноразовое-откл триггер. А воскл знак поставь с помощью "Действие-спецэффекты последние", далее в них выбираешь поставить спецэффект над нужным юнитов, переходим в дополнительно-воскл знак. Это скудный вариант,который легче понять новичкам.
Master113, добавить через "Новое условие" оператор "или" (Там два разных варианта, удобнее "or, multiple conditions" ("или, несколько условий" - как-то так)), туда поместить сравнения для каждого юнита. (Условие "или" будет выполняться, если выполнится хотя бы 1 условие внутри. Для оператора "и" - должны выполняться все условия внутри. Стандартный раздел триггера "Условия" действует как "и").
Как это сделано у меня в страннике:
Есть области, 1 для каждого НПС,
Есть группа, куда записаны все НПС.
Есть таймер с периодичностью в 3 секунды. Каждый раз идет проверка. Проверятся, что НПС состоит в группе и если случайное число 0-100 меньше и равно 50, то НПС двигается в случайную точку в своей области.
Когда герой начинает говорить, НПС останавливает свой приказ, поворачивается к герою и удаляется из группы, чтобы когда таймер сработал он не убежал.
Соответственно когда разговор окончен, НПС снова добавляется в эту группу.
Все просто.
Частично не понял, тоесть нужно что бы в кинематике был несуществующий юнит?
Допустим в окне кинематики паладин с каким либо именем что то говорит, но на карте его нет. Если да то это Спецэффекты - Transmission From Unit-Type
А касательно остальной части, если UnitUserData нигде не используется, создаешь массив юнитов и отрядов. Массив юнитов забиваешь своими капитанами. В UnitUserData капитана пихаешь его порядковый номер в массиве. Создаешь группу юнитов для этого капитана.
Добавление через каст способности.
Я бы делал через 2 разные абилки с одной и той же позицией в интерфейсе. Пока нужный тебе юнит не является частью отряда - у него таргетная абилка при касте которой на капитана он добавляется в группу соответствующего капитана и получает 2ю абилку взамен первой.
Касательно выделения этих пехотинцев - можно намутить что-то с передачей контроля или создать триггер, который будет снимать выделение с юнитов у которых есть 2я абилка. Если ты хочешь чтобы по одиночке можно было выделять пехотинцев - можешь создать переменную для каждого игрока с капитанами, куда будет просто записываться последний выбранный юнит. При снятии выделения - проверять не выбран ли этот же юнит, в случае чего не снимать выделение. Правда не уверен будет ли корректно работать :> В крайнем случае - будет работать в три клика вместо двух. Если я не ошибаюсь.
Касательно поведения этих пехотинцев - что-то реально стоящее сделать сложно. Возможно, но мне не с руки все расписывать :> Простейший вариант - приказывать пехотинцам после добавления в группу следовать за капитаном.
Добавление через атаку капитана
Триггер, проверяющий что капитан получил урон или атакован, как угодно. Далее любым способом проверяешь есть ли в группе этого капитана юниты. Если нет - выбираешь всех пехотинцев N радиусе, добавляешь в отряд, заменяешь абилку/либо просто приказываешь кастануть в капитана первую абилку.
все карты с кодом,без кода карта не запустится просто
похоже повреждена/повторяется функция конфиг
проверь близард джи на наличие в нём такой функции и проверь папку с игрой,так же проверь их на наличие функций маин и прочих функций которые создаются WE
если не поможет то переустанови варик
Оказывается нужно было указать в доступных улучшениях кастера нестандартное улучшение!
В данном случае у некроманта есть улучшение "магия скелетов", так как именно некромант кастует прокачиваемую способность "оживить мёртвых".
Если во всех картах одинаковый id, значит покопайся в хеше.
Это как, можно в личку?
Проблему решил, переделав стандартную способность, а не создавая нестандартную. Это почти что панацея от подобных случаев, когда id (ещё называют raw-code) способности меняется.
Все должно действовать, постоянно именно так и делаю. Триггер в студию.
P. S. Только одна оговорка: на всякий случай будет лучше, если способность, даваемая даммику, заранее будет присутствовать у какого-нибудь юнита на карте (можно нейтрального и/или не способного её скастануть), иначе иногда не исключены ситуации, когда даммик просто не кастует добавленную ему способность вообще (зависимость определить не удалось, абсолютно в одной и той же уже сохраненной и оптимизированной карте может кастовать, а может не кастовать - если не стал кастовать эту абилу в первый раз, то и всю игру - т. е. весь конкретный запуск конкретно этой карты - уже не станет, но добавлением абилы заранее нейтральному зданию, т. е. прелоадом, лечится надёжно).
Результат бонуса хп Кешируется, поэтом несмотря на уровень абилка всегда дает хп 1 уровня, а вот при ее удалении движок уберет юниту столько хп сколько указано в текущем уровне сплсобности, таким образом мы можем изменять хп юниту. Абилка в 2 лв,на первом уровне бонус маны иди хп 0, на втором обратный тому что М в хотим получить, к примеру если мы хотим получить 150 хп то пишем -150. Вручаем юниту абилку, ставим 2 уровень и тут же удаляем, движок добавит юниту 150 хп.
Частично не понял, тоесть нужно что бы в кинематике был несуществующий юнит?
Допустим в окне кинематики паладин с каким либо именем что то говорит, но на карте его нет. Если да то это Спецэффекты - Transmission From Unit-Type
Событие каждые 1 сек времени
пауза triggering unit
^ Не имеет смысла, здесь нет triggering unit, исправляй, сообщи об изменениях или неизменениях.
У тя там чета про убийства ещё, но спрятать юнит проиграв анимацию смерти не означает его убийство и из группы он не удаляется, если состоит. Так что имей в виду.
Есть вариант: сделать триггер с периодическим событием, действие которого будет поднимать камеру обратно каждые (х) секунд. А в своей карте я сделал через диалог.
ии я очень сложный замутил 4х ступенчатый (не для босов)так как при строительстве его я думал что движок будет пулять спеллы,его придёться переписывать,но я нашел решение если за моба стоит комп то спелы во вкладке нейтрально посивные он будет юзать но не все главное условие чтобы был комп назначен
ии я очень сложный замутил 4х ступенчатый (не для босов)так как при строительстве его я думал что движок будет пулять спеллы,его придёться переписывать,но я нашел решение если за моба стоит комп то спелы во вкладке нейтрально посивные он будет юзать но не все главное условие чтобы был комп назначен
Момент с порчей и миникартой оказался тем что там высота на уровне воды.
Но саму тень я все равно не могу убрать.
А все вопрос снимаю, это тень от здания
Karp, сейчас неохота ставить) Да я им пока что не планирую пользоваться.
Попробуй создавать порчу в определённой точке - может, в переменных косяк?
попробую этот вариант, например в центре региона какого нибудь, но уже завтра =) отпишусь как проверю.
У тебя макс. лвл = 1, а спеллов для изучения 2. В триггере на изучение спелла первым стоит Ледяной щит:D
и триггерно он не хочет учить второй спел получается? понял. Тогда остаётся установить макс лвл на 10 к примеру, и героям отключить получение опыта через триггер?
quq_CCCP, а для багнутого юнита будет работать GetUnitState хп? Просто тогда будет достаточно 2 проверки, при этом не запоминая хп всех юнитов в группе фениксов.
Если у юнита щас 1 хп. и через 5 секунд снова 1 хп - багнутый (ну либо очень невероятное совпадение для динамического хп феникса)
Проблема решена. Обнаружилась довольно неожиданно - заметил, что во время крита герой не разбивал лицо сам себе, начал искать модификаторы атаки - у героя было 3 пустышки с нулевыми значениями на основе "ракет". При всех пустых значениях вылетает невидимая ракета по самому себе.
Если способность имеет свой идентификатор приказа, то сделай активацию способности триггерно путем отдачи приказа типа цель-точка, где точку можно взять в твоем случае как координаты юнита-цели. Должно сработать.
Проблема решается очень просто: отключите оптимизацию скрипта в парсере cJass.
Велики шансы на то, что ниже по коду значение в [1] просто-напросто нигде не используется, и поэтому оптимизатор выпиливает его инициализацию.
незнаю поможет или нет но пробни через кустом скрипт написать это AddUnitAnimationProperties(u, "Alternate", false)
где u - это твой юнит и советую перед ней поставить паузу тригера на 0.1 хотяб
dave_wwid, прикрепляя к "cylinder02" ээфект работает когда модель перемещается в оба направления но изза вращения эффект отображается некорректно. Если прикреплять к другим костям то эффект ленты как и раньше появляется ток когда снаряд движется задом на перед.
Проблему решил поставив в материале галочку на twoside
Незнаю как отловить, когда юниты в радиусе волны. Но можно просто двигать точку с той же скоростью что и волна и в том же направлении и выбирать всех в радиусе. Область действия заклинания в РО написана.
Sprite - крепление для эффекта огня, который появляется при повреждениях, если модель используется для здания или для юнита, классифицируемого в РО как механический.
Тебе нужно именно улучшение или исследование?
Потому что если улучшение, то условие будет выглядеть как-то так: Тип Triggering unit == Юнит, который должен получиться после улучшения.
В редакторе исследования называются улучшениями. Да, мне нужно улучшение
я похоже нашел что искал. нужное условие называлось - "Сравнение типа техники". Этот божественный перевод :/
DoctorDoza, а, это.. Это не то, что ты подумал.
Здесь пишется текст, который будет виден всем игрокам, когда они наводят мышь на пиктограмму юнита/здания/улучшения, если у него есть требования.
То есть перед требованиями идёт надпись "|Cffffff00Требуется:", где "|Cffffff00" - это цветовой код жёлтого цвета (его можно удалить для экономии места), а "Требуется:" - это текст, который будет виден (его можно прописать частично латиницей, что будет незаметно: "Tpeбyeтcя").
После этой надписи уже пишутся сами требования в столбик.
» WarCraft 3 / Как прикрепить одного юнита к другому?
» WarCraft 3 / Как добавить юниту свой звук.
» WarCraft 3 / Арена.
» WarCraft 3 / Большие описания для героев
» WarCraft 3 / Реплики героев
» WarCraft 3 / Зависание
» WarCraft 3 / Что случилось с WE?
» WarCraft 3 / Как сделать Квест.
» WarCraft 3 / Отряд
» WarCraft 3 / Не запускаются карты. Возможно беда со скриптами
» WarCraft 3 / Уровень способности
» WarCraft 3 / Передача от отряда
» WarCraft 3 / Проверьте, пожалуйста, триггеры!
Ред. Clamp
» WarCraft 3 / Редактирование кода
» WarCraft 3 / Создание скиллов.
» WarCraft 3 / Стандартная способность
» WarCraft 3 / Убрать порчу
» WarCraft 3 / Баг какой то
» WarCraft 3 / Проблема с моделью эффекта
» WarCraft 3 / Сглаз
» WarCraft 3 / Горение Зданий
» WarCraft 3 / Улучшение